home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 May / macformat-024.iso / Shareware City / Applications / InterCal 1.0 / Calendar System Facts Pt. 2 < prev    next >
Encoding:
Text File  |  1995-01-09  |  9.0 KB  |  78 lines  |  [ttro/ttxt]

  1. Islamic Calendar
  2.  
  3.     The Islamic calendar is a physical lunar calendar. That implies that any computer algorithm only approximates the true calendar. Therefore, going far into the past or the future is even less meaningful than for the mathematical calendars. Nevertheless, InterCal forges ahead!
  4.  
  5.     In the true Islamic calendar, months start at the first official sighting of the new moon. Since it takes one to two days for a new moon to be visible after astronomical new moon. Islamic months are offset by a day or two from astronomical new moon. Note that this calendar is purely lunar, and makes no attempt at all to track the sun. Therefore the months cycle quickly through the seasons—it only takes 33 years for Ramadan (as an example) to cycle from a spring month all around the year and back to spring again.
  6.  
  7.     The formulas used by InterCal (described below) are approximations to the Islamic calendar. I believe this system is in common use throughout most of the Islamic world for planning purposes.
  8.  
  9.  
  10.     The rules of the mathematical approximation to the Islamic calendar as implemented by InterCal are:
  11.  
  12.     1)    The negative year era is labeled B.H. (Before the Hegira). The positive year era is labeled A.H. (Anno Hegira, Year of the Hegira).
  13.  
  14.     2)    Months are named (in order) Muharram, Safar, Rabi‘ al-Awwal, Rabi‘ al-Akhir, Jumada’ al-Ula, Jumada’ al-Akhirah, Rajab, Sha’baan, Ramadan, Shawwal, Dhul-Qi’dah, Dhul-Hijjah. Years start in Muharram.
  15.  
  16.     3)    Days begin at sunset. The convention used for displaying days is the same as that used for the Jewish calendar, whose days also start at sunset. The Julian Day of midnight during Muharram 1, 1 A.H. Islamic (a Friday) is 1948439.5. 
  17.  
  18.     4)    Muharram, Rabi‘ al-Awwal, Jumada’ al-Ula, Rajab, Ramadan, and DhulQi’dah have 30 days.
  19.  
  20.     5)    Safar, Rabi‘ al-Akhir, Jumada’ al-Akhirah, Sha’baan, and Shawwal have 29 days.
  21.  
  22.     6)    Dhul-Hijjah  has 29 days in normal years and 30 days in leap years.
  23.  
  24.     7)    The leap year cycle is thirty years long. One cycle began in the year 1 A.H. and ended in 30 A.H. Year #1 in the preceding cycle was 30 B.H. and year #30 in that cycle was 1 B.H. Leap years occur in years whose position in their cycle is 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, or 29.
  25.  
  26.     With a leap year cycle of thirty years containing 354(30) + 11 days and 360 months, the average month is 29.53055556 days, for an error of 0.00003264 days per month, or approximately one day every 2500 years. The months are slightly too short. This approximation to the Islamic calendar has about the same error with respect to the moon that the Gregorian calendar has with respect to the sun. Remember that the official Islamic calendar is based on observations of the real moon, and so by definition has no perceptible error. Because the approximation’s months are too short, the first of each month computed by InterCal will come earlier and earlier compared to the actual start of the month as the millennia go by.
  27.  
  28.  
  29. Elliott Super Calendar
  30.  
  31.     The Elliott Super Calendar was invented as a toy by the author of InterCal. It is a mathematical luni-solar calendar. The eras are imaginatively named B.Z. and A.Z. for Before Zero and After Zero.
  32.  
  33.     Just for fun, I decided to find a common multiple of the tropical year and the synodic month which was considerably closer than the 19-year (235-month) Metonic cycle discovered by the Babylonians and used in several other calendars (including the Jewish). I wanted accuracy, but did not want ridiculously long cycles of tens or hundreds of thousands of years. Although such long cycles might produce even greater accuracy, they would be unnecessarily complicated and not worthwhile in view of the long-term instability of the sun and moon’s motions. I found a very nice match with a 1689-year cycle containing 20890 months. This is only about four times as long as the Gregorian cycle, yet produces considerably greater accuracy for the sun and throws in the moon as well!
  34.  
  35.     The Elliott Super Calendar uses astronomical new moon in its calculations. That is, it uses as definition of new moon the time at which the earth, moon, and sun are most nearly aligned in a straight line. The Jewish calendar evolved from a system in which actual sightings of a new crescent moon began each month. And the Islamic calendar continues to use such sightings for its official definition. Since a new crescent takes one or two days to become visible after astronomical new moon, the starts of months in the Jewish and Islamic calendars tend to be offset from those in the Elliott calendar by one or two days.
  36.  
  37.     Taking a lesson from the Caesars, I named the first month after myself. Then I bested them by naming all the other months after my wife, children, parents, sisters, and my wife’s parents and siblings.
  38.  
  39.     For the zero point, I tried to find a place not too far away from the zero point of the Gregorian calendar. I also had two other criteria. For some year near the zero point I wanted new moon to occur very close to midnight at the start of the first day of the year. I also wanted the average date of the vernal equinox to be the first day of the year. (This rule was often used in ancient calendars, including the Babylonian and the Roman systems which pre-dated the Julian.) These considerations led to the following rules.
  40.  
  41.     1)    The negative year era is labeled B.Z. (Before Zero). The positive year era is labeled A.Z. (After Zero).
  42.  
  43.     2)    Months are named (in order) Denis, Jill, Nicole, Abigail, Ernest, Gladys, Gerard, Veronica, Anne, Colette, Joan, Ericka, and Anthony. Years start in Denis.
  44.  
  45.     3)    Normal years have 12 months (Denis through Ericka).
  46.  
  47.     4)    Leap years have 13 months (the month Anthony is added after Ericka).
  48.  
  49.     5)    Denis, Nicole, Ernest, Gerard, Anne, and Joan always have 30 days.
  50.  
  51.     6)    Jill, Abigail, Gladys, Veronica, Colette, and Ericka always have 29 days.
  52.  
  53.     7)    In leap years, the added month (Anthony) can have either 30 or 31 days. See Rules #8 and #10 below.
  54.  
  55.     8)    The leap year cycle is 1689 years long. One cycle began with 1 A.Z. and ended with 1689 A.Z. The cycle preceding that one began with 1689 B.Z. and ended with 1 B.Z. During each cycle there are three types of years. Normal years have 12 months. Leap Year Type 1 has the month Anthony added with Anthony having 30 days. Leap Year Type 2 has the month Anthony added with Anthony having 31 days. During each cycle there are 1067 normal years, 294 Type 1 leap years, and 328 Type 2 leap years. These leap years are distributed approximately evenly throughout the cycle.
  56.  
  57.     9)    The Julian Day of midnight at the start of Denis 1, 1 A.Z. Elliott (a Thursday) is 1751822.5. (This date corresponds to 25 March 84 A.D. Julian, which is 23 March 84 A.D. Gregorian.)
  58.  
  59.     10)    The rule for which years within each cycle are of which type is most easily understood in terms of a table. Such a table, having 1689 entries, would specify the type of each year. But such a table is too long for this document. So instead, I specify the rule for computing that table. That is exactly what InterCal does during initialization.
  60.  
  61.     a)    Define two auxiliary tables, Type2 (with 328 entries) and Type 1 (with 294). For each integer N from 1 to 328, set its entry in Type2 to the nearest integer to 1689N/328 (round, don’t truncate).
  62.  
  63.     b)    For each integer M from 1 to 294, set its entry in Type1 to the nearest integer to 1689M/294 - 3. (Round, don’t truncate.) (The purpose of the “3” is to offset entries in Type 1 from entries in Type2.) Occasionally during this process, the computed value of the M’th entry in Type1 will equal the (M-1)’th entry. Check for this, and when it happens go to the other table (Type2). Set the M’th entry of Type1 to the average of the two values in Type2 which are closest to, but both larger than, the duplicated value. When averaging, truncate to the next lowest integer if the average is not an integer.
  64.  
  65.     c)    Generate the final table, T1689, as follows:
  66.  
  67.     i)    For every integer J from 1 to 1689, set T1689(J) to “normal” unless J can be found in Type1 or Type2.
  68.  
  69.     ii)    If J is in Type1, set T1689(J) to “Leap Year Type 1”.
  70.  
  71.     iii)    If J is in Type2, set T1689(J) to “Leap Year Type 2”. If computed correctly, there are no duplicates between or within the auxiliary tables.
  72.  
  73.     As samples, the first few entries in Type2 are 5, 10, 15, 21, 26, 31, 36, 41, 46, 51…
  74. The first few entries in Type1 are 2, 7, 12, 18, 23, 28, 38, 43, 48, 54…
  75.  
  76.     The rules above imply that there are exactly 616894 days in each 1689-year cycle. Thus the average length of a year is 365.2421551 days, so years are too short by 0.0000439 days, which amounts to an error of one day in 22780 years. This is nearly seven times as accurate as the Gregorian calendar and far more accurate than the Julian and Jewish calendars. The rules also imply that, on average, there are exactly 616894/20890 = 29.5305889 days per month. Thus the months are too long by 0.0000006 days. That is equivalent to an error of 0.012534 days per 1689-year cycle or 0.0000074 days per year. Thus, with respect to the moon, the Elliott calendar builds up an error of one day every 135000 years (approximately). This is ten times as accurate as the Jewish calendar, which (for the moon) is a very accurate calendar.
  77.  
  78.